1. Field of the Invention
The disclosed invention is in the field of using communication and information technology (CIT) to assist individual devices, people, groups and/or organizations in management of interaction through networks. Although impacting other levels of CIT, the invention is focused on improving the application layer of computerized networking. (See standard OSI or TCP/IP networking models) It is specifically focused on application software that is used to enable a human to interact with a computer and to use the computer with this application software to manage socioeconomic activities. Like other “application software” the preferred embodiment of this invention in a standard computer works in conjunction with and/or through an operating system (OS) to control a given computing device.
The invention is applied to improve CIT “applications” that benefit from improved handling of structured data and enhanced interaction between humans and other entities (humans, machines or other physical entities) in the environment.
2. Background Art
As society becomes more networked, it is easy to imagine many new opportunities as well as many new threats that might result. For example, people often assume that increased interconnectedness through computer and information networks will automatically bring amazing new benefits for humans. This is simply not true unless there is an understanding being transferred between the entities interconnected on a network. Also, as one can readily imagine after experiencing contemporary science fiction, there are also potential threats from intelligent machines getting out of control. Although it is now obvious that both of these extremes are exaggerated in the short run, the opportunities and threats are both still possible in the long run. It will help the reader of this document to more easily understand and appreciate the uniqueness and utility of the disclosed invention to have: 1) a realistic outlook on the opportunities and threats of technology, and 2) an understanding of the current abilities and limitations of communication and information technology.
It is often assumed that application software is as advanced and well organized as the networking hardware technology. For example, people assume that as we make strides toward more interconnectedness on the hardware and basic data transport levels that we also make comparable strides on the application level. This is not true. In fact it was this kind of naive thinking that was a cause of the infamous “Internet Bubble”. The main reason why this is not true should have been obvious. Merely being interconnected by a communication medium does not necessarily mean that the interconnected entities will be able to communicate understanding and therefore benefit human enterprise.
The reason the Internet bubble eventually burst was because we did not actually have the ability to efficiently and effectively organize and communicate information in such a way that it would dramatically enhance the common individual's ability to negotiate and manage their unscripted lives. There is a need for real-time information organization and communication tools and methods that will help common individuals to more productively negotiate and manage their lives and relationships. This is the main reason why AFFIRM was invented, so that common individuals could better benefit from the increased interconnectedness of our society. It turns out that the AFFIRM invention will also be beneficial in many other areas than directly helping people manage their socioeconomic networks. Any network or part of a network that could benefit from better simulation, negotiation, coordination, and control through improved organization and communication of information stands to benefit from the AFFIRM invention.
To further develop and to create new and valuable services, socioeconomic entities need to be able to: Evaluate future options/opportunity and past performance; communicate efficiently and effectively; negotiate appropriate win/win agreements; transact or interact in a safe and efficient way; integrate or synthesize merged organizations, applications and knowledge; and coordinate efforts of multiple distinct individuals or entities
Socioeconomic individuals and groups concerned with development need to try to preserve current value by protecting existing assets while also trying to create value through building new assets. Current technology is not very good at helping achieve either of these two primary objectives, securing existing value and creating new value. For example, current systems could be better at securing private information while interacting with others outside of a private entity to build new assets. Enabling both of these essential yet seemingly juxtaposed needs or benefits for demanding customers and collaborating partners will prove to be a significant value proposition.
Previous attempts to satisfy these needs electronically have been less than ideal because of security limitations and impractical and costly integration requirements of systems from the following categories: Analytical Applications—data warehousing, decision support, performance management applications often categorized and on-line analytical processing (OLAP); and Collaboration Tools—office, email, instant messaging, whiteboards, team sites, etc; Transactional Applications—ERP, accounting, inventory management, purchasing, sales, etc., often referred to as on-line transactional processing (OLTP).
Given these present limits, these systems are unable to provide the above mentioned value creation capabilities in a practical way.
The present invention both integrates the other systems mentioned in a more practical way with a common uniform intermediary data store, but also provides some of the benefits of these other applications and more, in and of itself.
Most of today's Web servers are merely haphazard additions to a company's information technology infrastructure. Therefore, most Internet information remains separate from the many other systems within a company. Collaborative applications are comprised of several different point solutions that are not even normally considered to be part of the transactional and analytical application landscape or “silos”. In fact, this absence of integration is also true of most company's internal transactional, decision support and/or data warehouse systems. Frankly, it is an embarrassing situation for the designers of today's systems. The analytical systems are separate from the Transactional (Enterprise Resource Planning) systems that manage the internal resources of most companies today. This prevailing situation was acceptable when online business was in its early stages and businesses were not required to be proactive, but now, as e-business is advancing into a more collaborative knowledge-based commerce stage, this integration problem is a major detriment to further growth and development. Therefore, the status quo will become unacceptable, and the companies that break away from these severe limitations will enjoy huge gains in competitive position.
It is as if the users of these different applications are expected to always be operating in isolation, not needing to communicate, participate in negotiations, or other value creation activities with users of the other applications. But the days of the lone analyst in the ivory tower are over. Today's managers in broad and deep positions in learning organizations need to be able to do it all. They need web access to integrated tools that can analyze, collaborate, transact and then analyze again all in one reoccurring seamlessly integrated learning cycle.
Managers need to be able to bring all the different existing pieces of a solution together and to share data between them, from one central data repository and/or common uniform structure when appropriate. To have an understanding of oneself, ones environment and ones role within the environment, one needs to be networked into the fluid flow of information on the “business application” level between transactional systems, analytical systems and communication systems. At this time, satisfactory solutions do not exist for this challenging problem. Basically experiential (transactional) data from multiple disparate and distributed sources needs to fluidly inform analysis, which then needs to fluidly inform all related future planning and implementation decision-making (transactions) in real-time. Present limitations of the different (usually separate) CIT business application systems operating in this organizational learning cycle are explained below. How the present invention overcomes these limitations is inferred below, and further explained in the following Description of the Invention section.
Today's “computerized application programs” do not efficiently and effectively structure data about an individual's behavior and ever-changing status vis-à-vis their environment. In most cases where individuals are represented in today's “computerized application programs”, they are represented within large business application programs as one of many individuals in a common database “Table” or file. Some structured database application programs, such as accounting systems, enable “individual entities” to represent some aspect of themselves, e.g. their financial situation. But unfortunately these programs record data of specific types in specific pre-defined database “Tables”. Therefore, these programs are not good at handling an end-user's evolving data type requirements for previously unspecified processes or situations.
Since database application programs, e.g. accounting systems, are structured to handle only specific numbers and/or types of data “Tables” and/or “Fields”, they are not able to productively communicate with other application programs designed to handle different types of data. Therefore, different systems handling different types of data do not effectively and/or directly interact with each other. As a result the single company or industry wide hub, with data organized in specifically typed and defined data tables and fields are still the standard method for trying to handle coordinated data exchange.
Because of the difficulty in current disparate systems interacting, most business expenditures in information technology are for training and/or integration of different systems, rather than for the acquisition of new systems. This is also why there is great effort being applied by industry groups to try to negotiate agreement on how to define the different specific types of data that will be handled in different types of application programs. The hope is that these efforts will enable the adoption of common standard data type definitions so disparate systems relying on structured data will then be able to communicate with each other. There are many attempts to use XML by different disciplines and industry consortiums. Current standard markup languages require those sharing data directly, i.e. not through intermediary transformers that limit real-time communication, to have a common specific yet comprehensive schema, i.e. data type and hierarchy definition. The problem with this is that industry groups can't agree on standard or common schemas that define everyone's needs. To get organizations in multiple industries to agree on standards, so that better convergence could be achieved, would be even more challenging. Therefore, fluidly communicating structured data between organizations and their servers continues to be a major problem.
Another different problem is that it is difficult to manage the security of structured data in today's application programs or services. It is very difficult to keep information private once it is placed on a networked system. When a database, e.g. a medical records database, has private information about a particular individual, e.g. a patient, in today's systems, the information is usually commingled with information about other individuals of the same type, e.g. other patients. As a result, an individual's private data is inherently accessible by multiple users of these systems. “Third parties” with security rights to access that “level” or “Table” of data, are going to be able to access private records, whether they have any reason to interact with that particular individual's private information or not. This is a major security hole that many organizations are required to plug, e.g. because of new HIPAA laws, but are currently still looking for ways to do so.
If one of today's systems is set-up to only allow certain individuals to access certain specific information on a network, then there needs to be one or more other designated “third party” security agents generally authorized and spending significant time and effort to specify and maintain specific individual access rights. In large networks this can be a huge expense. Just the fact that private information for more that one individual is store in a common place makes the information vulnerable to access by unintended parties.
As a result of these limitations and difficulties with current information technology, an individual (i.e. individual person, group, organization or other entity) still does not have access to cost effective and secure computerized services that effectively guide, coordinate and assist in the management of common yet ever changing processes. Individuals would benefit greatly from individualized and secure computerized services that help manage their unscripted relationships and processes without requiring: private information of multiple individuals to be combined in one place; “Third party” data security providers and/or users to access private information; different data structures and/or programs for different applications; agreement on a common data dictionary or type definition by interacting parties; and “Application programs” to be reprogrammed when data type definitions change.
The following invention overcomes these present day system requirements and will enable collaborating individuals to work more fluidly and innovatively together with less fear and limitation.
In addition to having too many of these above mentioned unnecessary and costly requirements with today's systems there are also some potentially valuable things that current systems, no matter how expensive they are, cannot do. Social scientists have shown that each “individual entity” (whether a individual person, group or larger organization) has a different perspective on shared knowledge and relationships. But most information systems today require those that communicate shared knowledge and information to agree to one way of describing their knowledge. Unfortunately this is not possible when different groups in different domains are used to naturally building their own vocabularies. This makes it difficult for different groups using different vocabularies to communicate or collaborate. e.g. nano, bio, info and cogno scientists all have different words for what they call the connections between the components of their structures. As the examiner of this patent application, you are involved in a perfect example of this. It must be very difficult to thoroughly research all the different patents that might be related to a new patent application, given this common tendency of different individuals from different or even related domains using different words to describe the same thing.
One who is practiced in the art of computer programming and is familiar with existing methods knows that both procedural and object oriented programming methods normally dictate that business process application programs be designed to use and only work with specific types of data or objects. Current art in the computer science field prescribes that the “programmer”, in the traditional sense of a person who writes instruction code in a “programming language” to be compiled or interpreted at runtime, must define the specific type of “objects” that an “application program” is able to process. This can be seen in how data modelers define database “Tables” with specific record fields and/or similarly how business process modelers define “Classes” for a particular type of “Object”. The current programming paradigm, taught in contemporary computer science classes, suggest that “Tables or “Classes” for a database and/or program be defined to directly correlate with “real objects in the real world”. For example in a healthcare application you would have a record for each patient in a database table specifically structured to hold the specific type of information that a standards body decided was appropriate and necessary. One can refer to any present day computer software programming literature for more on contemporary programming methods. Again, like database “Tables”, each application program designed to handle structured data is written by a “programmer” or “program generator” to handle certain types of data or objects for specific types of situations.
As a result of this standard programming paradigm, specific “Tables or “Classes” only handling specific types of data or objects, if an end-user wants an existing application to handle a new and different type of data or object, they will find that it won't work. They are stuck or rendered helpless unless they find a different program to handle their new type of data or object or they need to expend effort “programming” their own application program that will most likely not interoperate with the other existing programs. Wouldn't it be nice if one program was available that could handle any type of data or object and enable non-coders to “program”?
Since these capabilities have not previously existed, the coordinated development of “business process applications” that supported collaborative interaction and evolved in real-time could not be created and/or not be programmed by normal businesspeople or “end-users”.
In addition to the application development issues and other limitations with current information technology and architectures mentioned above there are other problems that the present invention is designed to resolve. There have traditionally been two separate branches of structured database business computing applications. Both were inherited from the mainframe world of computing, online analytical processing (OLAP) and online transaction processing (OLTP). Because of their drastically different requirements, they usually must be run using separate systems. This causes problems trying to get data from the transactional systems, usually the source applications, to analytical systems. Because of the extraction, transformation and load (ETL) procedures that are usually necessary before data gets to analytical systems, there is normally a time delay that prevents real-time data analysis. Another problem resulting from the fact that OLTP and OLAP systems are usually separate “islands” or “silos” that don't integrate very well is that this makes it difficult for an organizations learning loop to be a complete and fluid circuit. Ideally analysis would immediately effect transactions, which would immediately impact analysis, which would then again impact transactions and so on in a continuous real-time loop. Unfortunately, because of the disjointedness of these two types of systems, they do not effectively support organizational learning.
OLTP and OLAP have some other problems in common and some that are unique to each. Both usually attempt to support seemingly unlimited multi-user demand from limited centralized servers. As a result, users of both types of systems can suffer from slow response times. Therefore we need better ways to distribute data and processing across multiple computers. But unfortunately current OLTP technology used for managing inventory, financial accounts and other important resources are not good at coordinating interaction between multiple parties and resources without bringing the data for these together in one common central location. Again this causes information systems to have inherent security and performance problems.
OLTP systems that involve more multi-user writing of data than OLAP systems also suffer from other difficulties. Since multi-user transactional database application programs normally enable editing of common structured data, they need sophisticated ways of locking a specific piece of information while someone is editing it. Locking is required while one user is editing something, so that someone else won't edit the same thing at the same time and overwrite the other user's changes.
Also, when computer servers are connected directly or indirectly to a network and allow access by the public or unknown users, e.g. email and web servers, they are subject to the possibility that these unknown users will purposely or un-purposely use too many resources from the server. In extreme cases, this causes what is commonly called a “denial of service attack”. It would be better if these servers could not be accessed by unknown parties, but given the way email and other servers work, this is unpractical.
There are several things that an operating system is not intended to do. An operating system is software focused on assisting application software in operating the hardware of a single computer.
When a given software program is running on a given computer this is thought to be a separate instance of the software, usually requiring a separate license for use. Software that provides access to or assists in control of another computer, e.g. a “client user interface to another server or computer” should not be considered to be part of an operating system. Otherwise one could imagine that as a result of the pervasiveness of the Internet, the software on all computers could eventually all be part of one massive operating system with the ability to control the whole network. This could cause abuse of power and/or subject the network to severe vulnerability. To prevent these potential problems this invention distributes control across the network to each individual. A separate instance of an operating system running on a separate distinct computer used to provide control of one or more processors of that separate computer is normally considered to be a separate instance of the operating system running another computer. Therefore, software that accesses or controls another server or peer computer is considered to be an application as opposed to an operating system. For security reasons operating systems are not supposed to allow their users to work with file systems on other computers on a network from a web browser.
Also someone cannot use an operating system to for example, organize a knowledge base in different files. This is what would normally be considered a business “application”. These types of functions and most of the other things that this invention does that are unique would not normally be considered to be part of an operating system. The aspects of the present invention are normally part of what would be considered business management application software. This category of software includes all types of business application software such as inventory management, accounting, scheduling, desktop productivity, email, instant messaging, group collaboration, data warehousing or business analytics, contact management and much more. These types of “application” software traditionally run on top of the operating system of a computer.
It is imperative for the vibrancy and continued innovation of this industry that the operating system layers and the business management systems layers of the software industry be kept separate. It would be particularly stunting of progress toward systems that enable computers to improve the quality of life and productivity of humans, if there was only one company that could compete in the market for business applications. Unless of course you believe that an operating system should be able to include anything and everything and that it doesn't matter if one software company controls the whole industry, you need to understand that operating systems are supposed to control ONE computer's hardware and must keep track of state information about that one computer and the application software in the process of using it. Software that can assist in the control more than one computer and keep track of the state of more than the one computer being “operated”, should not be considered part of the operating system. These functions should be part of an application that is designed to work on or through, many different operating systems.
Networked Directory systems and XML systems are like databases in that they require third party control of security and upfront agreement on the type of data being structured.
Email systems use a more highly evolved style of network communication called “all channel”. (See FIG. 16) This enables the member of a network to increase their satisfaction over the traditional “chain of command” type networks and “Hub and Spoke” networks. But unfortunately “all channel” networks make it difficult for leaders to emerge and current “all channel” communication technologies do not support storage and communication of structured data as is needed to support in-line analysis, transactions and synthesis between entities.
Email systems are also prone to viruses and other attacks. Another “all channel” communication technology called instant messaging is designed for users to be synchronously (at the same time) connected, and is also not designed for storing and communicating structured data. Again, current “all channel” systems are either requiring fixed formats or data type definitions, like EDI, or are like email and instant messaging and are not designed to handle structured data. Current databases and spreadsheets handle structured data, but do not handle the ability to flexibly coordinate the integration or synthesis of the structured data between disparate hubs.
Application servers traditionally require “programmers” to code business logic using standard languages and require, with the OS, non-persistent session and state management information to manage multi-user activity.
File sharing programs are currently (often illegally) used to distribute digital content. These distribution systems, especially the peer-to-peer type, are not able to efficiently and effectively prevent unauthorized copying and distribution of this digitally recorded content. Content streaming and centralized document management can alleviate these abuses in a centralized company, but not in a situation where distributed peers are cooperating in the process of sharing information about documents and content. Since peer-to-peer sharing of information among fans and other interested parties is only natural, we need peer-to-peer systems that prevent these abuses of copyright law.
All together these above problems and limitations of current CIT enable thieves to steal ones identity and digital assets in cyberspace and cause major problems for the individual victim. It is one of the fastest growing crimes, and needs to be stopped. The present invention will prevent this crime.
Also, normal humans somehow have the ability to use good judgment, especially those that are involved in a particular business process on a daily basis. Computers on the other hand, and their “programmers” that are not usually experienced or trained as business persons, are not usually as good at judging what would be the right thing to do at a particular time. Therefore, there must usually be a two-step development process where a businessperson specifies a “business process application program” and a programmer programs it. Unfortunately, there almost always seems to be something lost in translation. Computers just do what they are specifically told to do, and at this point in time it is still too difficult to tell computers what to do. Also, eventually computers will be capable of doing more than they are told such as make recommendations for future actions of either themselves or others. People will need ways to securely and cost effectively control and benefit from those enhanced computing capabilities.
Therefore, we need simple ways for end-users to be able to not only tell their computers what to do, but also receive novel recommendation from the computer. When computers are sophisticated enough to take novel actions themselves, it will be important to make sure a responsible person approves of the actions. Most efforts at this time are being placed on allowing business people or “power users” to be able to graphically layout a specific user interface and/or business process and then have a code generator actually “write” the instruction codes that are then compiled or interpreted to run as an “application program”. Even this newer method requires a two-step process where “business application programs”, including interfaces, e.g. graphical user interfaces, data structures, e.g. tables, and/or processing algorithms, e.g. software programs, need to be defined and written for specific business processes and object types. This does not ideally support dynamic situations where business users need real-time transactional and analytical processing systems that can easily adapt to user needs, communicate and share structured data with users and systems with different data type definitions.
Also, for some time now, we have dreamed of computers that would be able to reason like humans with constantly changing information about the environment and able to make judgments across a wide variety of fields based on that data. One reason we don't have computers that are able to do these things very well is because computers are not currently capable of being conscious or understanding of the intimate details about relationships between entities.
Have you seen a machine or computer program capable of effectively learning and managing all the different aspects of multifaceted relationships? Have you seen CIT able to keep track of and communicate information about a relationship from the different perspectives of you, me and we (ourselves and others)? Up to this point it hasn't been done very well. And this is one reason why CIT systems are not as good at assisting in the management of relationships as they could be. If computers were good at this sort of thing in general they could be used to more readily manage more aspects of our lives and our relationships. Just imagine what kinds of services a computer could provide if it were able to more intimately know about you, about all your potential partners, and about the value of things you might do together with these potential partners. For example, would we be able to negotiate our future plans and then have the computer know enough to then manage those plans in a semi-automatic way? Are current computers aware of what you and your partners have to contribute to achieve future plans? Are they able to seek options, consider the potential value of options and recommend plans that make the most sense given your strengths, weaknesses, opportunities and threats? If computers could do this, they could be relied on to serve people in much more productive ways.
If all of the above problems were solved and possibilities achieved, we would have secure and reliable individualized or customized services continuously available that provide: automatic evaluation, budgeting and record keeping; automatic intelligent order giving and taking; automatic research, evaluation and development; coordinated interaction that manages optimum value creation; continually reprioritized and automatically rescheduled To Do lists; automated opportunity recognition and recommendations for each individual; and/or identification of potential partners for an individual for example.